package com.example.demo;

public abstract class AbstractTemplateBlock<T> {
    // 组装结果
    public T template(ModelContainer modelContainer) {
        T block = initBlock();
        try {
            this.doWork(modelContainer, block);
        } catch (Exception e) {
            // 可以选择捕获异常，是中断流程，还是只打印日志，不中断流程
        }
        return block;
    }
    // 初始化构建返回结果模型
    protected abstract T initBlock();
    // 定义抽象模版
    protected abstract void doWork(ModelContainer modelContainer, T block) throws Exception;
}

